A Specification and Descripiton Language programozási nyelv (SDL)

Felépítés

Az SDL felépítése hierarchikus. Egyetlen system szinten belül tetszőleges számú blokkok lehetnek akár egymásba is ágyazva. A blokkokon belül helyezkednek el a processzek, melyek procedúrákat használnak. A system és a blokk fogalmak között helyezkedik el a package, mely az előbbiektől eltérő osztályozási forma.

System

Az SDL hierarchiájában a system van legfelül. Fő célja a blokkok közti kapcsolatok leírása. Mindig csak egy létezik belőle, és pontosan egy. Bizonyos műveletek csak system-en hajthatók végre, pl. szimuláció, validáció, fordítás. Legfelső absztrakciós szintként nem tartalmaz konkrétumokat, de alkalmas blokk-nevek választásával könnyedén áttekinthetővé teszi a rendszer szerkezetét, persze csak madártávlatból.

Blokkok

A system-hez hasonlóan a blokkoknak is főképp gyűjtő-leíró szerepük van, ám mivel alacsonyabb absztrakciós szinten helyezkednek el, már több konkrétumot is tartalmaznak. Nem csak az őket alkotó processzek láthatók egy helyen, de a köztük lévő kapcsolatrendszer is, így az SDL-ben fontos szerepet betöltő szignálok alkotta szignállisták is. Ezen szignállisták elhelyezkedhetnek a processzek között, a köztük folyó kommunikációt leírva, de a blokk és a „környezet” között is.

Az SDL környezetként kezeli a világ teljes, SDL-en kívüli részét. Ezen környezetről feltételezi, hogy SDL-szerűen viselkedik, azaz szignálokat küld be, és fogadja a rendszerből kifelé menő szignálokat. Ezen felül viszont semmilyen egyéb feltételezéssel nem él. Ez segíti, hogy könnyedén lehessen az SDL-t integrálni bármilyen programozási nyelven írt környezetbe.

Processzek

A processzek alkotják az SDL magját. Minden, hierarchikusan feljebb lévő szint közvetlenül vagy közvetetten a processzek közti kapcsolatok leírására szolgál, a hierarchikusan alacsonyabban lévő szintek pedig a processzek-et „szolgálják”. A processz a legmagasabb szint, aminek már van „jelentése”. Minden egyes processz egy önálló állapotgép.

Az eddigiekkel ellentétben a processzek már nem ágyazhatóak egymásba, csupán szülő-gyermek kapcsolat lehet köztük.

Eljárások

Az eljárások képezik az SDL-hierarchia legalsó szintjét. Működésük majdnem megegyezik a hagyományos programozási nyelvek metódusával, tehát ugyanúgy beszélhetünk paraméterekről, visszatérési értékről, mellékhatásokról és lokális változókról. Ám az SDL eljárásnak a processzhez hasonlóan szintén van állapotgépe. Alapesetben örökli az őt hívó processz állapotgépét, viszont ezt saját állapotokkal is bővítheti. Általános használata azonban inkább a hagyományos metódus szerepben testesül meg.

Package-ek

A packagek nem tartoznak szorosan az eddig részletezett hierarchiába, inkább az objektumorientált nyelvek library fogalmához hasonlítható. Célja függvények, eljárások, szignállisták, szignáldefiníciók és típusok egységbe zárása a könnyebb áttekinthetőség és újrafelhasználhatóság céljából.